JPEG2000 was designed to provide access to different regions, resolutions, and levels of quality of an image without decoding the entire JPEG 2000 file. Various progression orders were also defined so that a file transmitted over a slow communication channel would “progress” in a certain way, e.g., from low resolution to high resolution, or from low quality to high quality. Also of interest was the ability to choose portions of the image in an order other than the order the file was stored. In general, someone might interactively select a region and quality of the image for transmission.
J. Li and H.-H. Sun, in “Virtual Media (Vmedia) Access Protocol and its Application in Interactive Image Browsing”, Proc. SPIE Conf. on Multimedia Computing and Networking, vol. 4312, pp. 99-110, Jan. 22-23, 2001, San Jose, Calif., proposed a virtual media (Vmedia) access protocol and developed an interactive JPEG 2000 browser with Vmedia. They use code-block access as the basic elements. Their cache implementation has priority bits.
M. Boliek, G. K. Wu and M. J. Gormish, in “JPEG 2000 for Efficient Imaging in Client/Server Environment”, Proc. SPIE Conf. on App. of Digital Imaging, vol. 4472, pp. 212-223, Jul. 31-Aug. 3, 2001, San Diego, Calif., define a client/server environment to transport JPEG 2000 images. Their work defines “smart client,” “dumb client,” “smart server,” and “dumb server.” They provide examples of JPEG 2000 byte usage in a “pan and zoom” session and describe a protocol based on Internet Imaging Protocol (IIP), Version 1.0.5, 6 October 1997. The protocol described here extends some of the ideas from Boliek, et al., “JPEG 2000 for Efficient Imaging in Client/Server Environment”, Proc. SPIE Conf. on App. of Digital Imaging, vol. 4472, pp. 212-223, Jul. 31-Aug. 3, 2001, San Diego, Calif., paper but relies on HTTP as defined in R. Fielding, J. Gettys, J. C. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee (Editors), Hypertext Transfer Protocol—HTTP/1.1, RFC 2616, June 1999 for transport.
Sachin Deshpande and Wenjun Zeng, in “Scalable Streaming of JPEG2000 Images using Hypertext Transfer Protocol”, Proc. ACM Conf. on Multimedia, pp. 372-381, Oct. 2-4, 2001, send JPEG 2000 images using HTTP. However, they send a separate index file with header information and then use HTTP byte range requests to get the desired image pieces. Their protocol allows pipelining of requests, but not interruption. It suffers from an extra roundtrip time to get the index file. Their examples are highly inefficient because multiple byte ranges are sent with “Content-Type: multipart/byteranges;” with a boundary value. In one case, there is 70 bytes of overhead for 48 bytes of data.
Wright, R. Clark, G. Colyer, in “An implementation of JPIP based on HTTP”, ISO/IEC JTC 1/SC 29/WG 1 N2426, Feb. 14, 2002, Elysium Ltd., UK, describe use of HTTP “Accept-Ranges:” with values such as bytes, jp2-boxes, and j2k-packets. The main disadvantage of their approach is the need to end the initial connection and open a new connection after determining the server supports these additional range types. Their work is not a full definition of a JPEG 2000 interactive protocol.
D. Taubman, in “A Very Simple Proposal for JPIP”, ISO/IEC JTC 1/SC 29/WG 1 N2445, Mar. 13, 2002, Univ. of New South Wales, Australia, uses precincts and code-blocks as the basic elements of JPEG 2000 file transfer. He defines a protocol, using binary containers, specifying acknowledgements and session information, and using byte ranges of precincts as the fundamental return type. In contrast, this protocol uses self-labeled tile-parts as the basic elements for communication. This way both the client and the server have copies of valid JPEG 2000 codestreams.
R. Prandolini, S. Houchin, R. Clark, in “Call for JPIP Technology Proposals”, ISO/IEC JTC 1/SC 29/WG 1 N2550, Mar. 21, 2002, issued a call for proposals for JPEG 2000 Interactive Protocol (JPIP). Their document describes a sequence of pan and zoom steps someone might use with a browser and ask for measurements of efficiency. No technology is defined in the call for proposals.
Canon, “Proposal for JPIP Tier 2 protocol,” 28 Jun. 2002, WG1N2608, was an answer to the call for proposals that defines a full protocol and access to individual codeblocks or larger portions of a JPEG 2000 file. Their proposal also defines an Application Programmers Interface (API) for the protocol.